iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 12
0

大家好,昨天寫了Dataset的建立與讀取資料的方法,其中讀取資料的方法實作了for loop、take、batch、shuffle,而今天就是要介紹昨天提到的,用不同的層來建立模型。
之前不論是在用Sequential Model或Function API建立模型時,主要使用的方法都是layers.Dense,是用來建構全連接層的方法。另外在建立多輸入模型時還有用到layers.Concatenate,是用來將兩個層串聯。而今天要實作的方法是layers.Conv2d和layers.Flatten,Conv2d是用來建構卷積層的方法、Flatten可以將輸出重塑(reshape)成一維張量,多使用在卷積層和全連接層之間。今天都只會先進行簡單的程式實作,其中的運算原理與用處會在之後才介紹。

首先是用Conv2d建立卷積層:

inputs=keras.Input((256,256,3))
outputs=keras.layers.Conv2D(64, 3)(inputs)
model=keras.Model(inputs,outputs)

在Conv2D方法中我只寫了必需的兩個參數,第一個參數是指卷積核的數量,第二個是指卷積核的大小,設為3表示大小是3*3,剩下的參數會連同之後的運算一同介紹,今天就只先寫這些。

再來是Flatten:

inputs=keras.Input((256,256,3))
h1=keras.layers.Conv2D(64, 3)(inputs)
flatten= keras.layers.Flatten()(h1)
outputs=keras.layers.Dense(1)(flatten)
model=keras.Model(inputs,outputs)

這個模型原先輸入為三維張量,h1的輸出在經過flatten後變為了一維張量,最後輸出層的輸出是一為張量。


上一篇
DAY11 - tf.data - Dataset的建立與資料讀取
下一篇
DAY13 - 卷積神經網路介紹
系列文
AI初見 從零開始的TensorFlow生活30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 則留言

0
rukeith
iT邦新手 5 級 ‧ 2020-10-12 16:44:58

想問連接層和卷積層又是做什麼的?
會對資料做什麼處理嗎?

我要留言

立即登入留言